過去幾年在自然語言處理 (NLP) 領域,從 BERT 到 ChatGPT這樣的通用模型的演進,已經可以確立是成功的模式,這種模式現今也為電腦視覺和多模態領域提供了發展藍圖,視覺語言模型的演進,從視覺理解(看懂圖)、視覺生成、圖像問答等特定任務的模式,也轉向了多功能、通用視覺基礎模型,核心目標是建立能執行多樣化任務的通用助手,開發能夠感知、生成和推理視覺世界的通用視覺模型,並使其能夠與複雜的人類意圖保持一致。
一個模型若要稱為 VFM (Visual Foundation Model),其要素至少包括:
- 多任務能力:能處理多種視覺任務,例如 物件偵測、圖像分割、視覺問答、圖像生成、caption、VQA、OCR、grounding 等。
- 大規模多模態訓練:視覺基礎模型是以大量、多樣化的視覺及文字資料進行大規模預訓練,讓模型學習到複雜的視覺特徵和模式。
- 多模態融合:視覺基礎模型常與大型語言模型結合,能同時處理視覺和語言訊息,實現跨模態理解與生成。
- 可遷移性:可以被用作其他視覺任務的基礎。開發者可以利用一個預訓練好的 VFM,並在其之上進行微調 (fine-tuning),以適應特定的應用場景,從而節省大量的訓練時間和計算資源。
- 零樣本或少樣本學習 (Zero-shot or Few-shot Learning):VFM 具備執行新任務的能力,即便沒有或只有極少量的訓練範例。這是因為模型在預訓練階段已經學會了如何將視覺概念與語言描述連結起來。
考量開源、多模態能力、及資源有限的環境下能高效運行,我先選擇了PailGemma進行介紹及實作。
PaliGemma
PaliGemma 是 Google 推出的開源視覺語言模型,它是 Gemma 模型家族的一員。PaliGemma 的主要特點在於它能夠同時理解並處理圖片和文字兩種不同類型的資訊,因此能執行多種多模態任務。PaliGemma 的應用包括圖像標題生成、物件檢測、圖像分割、光學字符識別、圖像問答等多種視覺語言任務。做為一個視覺通用模型Visual Foundation Model,PaliGemma具備的特點包括:
- 通用性:
- 能處理 圖像描述、問答、OCR、推理 等多種視覺任務。
- 具備「多任務、多資料來源」的泛化能力。
- 模組化架構:
- Vision Encoder (SigLIP) + Projector + LLM (Gemma)
- 這種設計允許模型作為「基礎視覺理解模塊」,再針對下游任務微調。
- 開源生態:
- 提供 3B/7B 權重,可在 HuggingFace 上下載使用。
- 能進行 instruction tuning、LoRA 微調,方便適應不同應用場景。
PaliGemma 目前的最新版本是 PaliGemma 2,由 Google 於 2024 年五月發布,提供了多種參數規模選擇,包括 3B、10B 和 28B 版本,對應 Gemma 2 的 2B、9B 和 27B 語言模型,支援多種圖像解析度。
PaliGemma 2 雖然是一個強大的模型,能夠處理多種任務,但它在設計上更像是一個「基礎模型」。這意味著,它適合:
- 單一任務導向微調: PaliGemma 2 通常需要針對特定的任務進行額外的微調(fine-tuning)。例如,如果你想用它來做視覺問答(VQA),你需要用 VQA 的專門資料集來微調模型;如果你想做圖像字幕(image captioning),則需要用圖像字幕的資料集來微調。
- 任務切換: 雖然同一個基礎模型可以應對多種任務,但在實務上,你可能需要針對不同任務使用不同的微調版本。這會導致模型管理和部署變得更複雜。
也因此,Google 後續又再推出 PaliGemma 2 mix,是一個「多任務整合模型」,它在訓練階段就已經將多種任務的能力整合在一起,因此可以「開箱即用」,直接處理多種任務而無需額外微調。
明天,我們就來動手實作PaliGemma !